package com.mingserve.common.mqtt.config.properties;

import com.mingserve.common.mqtt.utils.NetUtils;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * MQTT 配置
 *
 * @author lvwshuai
 */
@Data
@Component
@ConfigurationProperties(prefix = "spring.mqtt")
public class MqttProperties
{
    private List<ClientConfig> list;

    @Data
    public static class ClientConfig {
        /**
         * 配置名称
         */
        private String clientName;
        /**
         * MQTT服务器URL
         */
        private String url;

        /**
         * 客户端ID
         */
        private String clientId;

        /**
         * 连接超时时间（秒）
         */
        private int connectionTimeOut;

        /**
         * 保持连接心跳时间（秒）
         */
        private int keepAlive;

        /**
         * 连接用户名
         */
        private String username;

        /**
         * 连接密码
         */
        private String password;
        public String getClientId()
        {
            String mac = NetUtils.getMacAddress();
            return clientId + "_" + mac;
        }
    }
}
//    mqtt:
//        url: tcp://ming-mqtt:1883
//        username: test
//        password: test1234
//        keep-alive: 30
//        connection-timeout: 3000
//        clientId:  client_iphm
//        deafultTopic : test
//        qos:  1
//        cleanSession : false